<?php
require_once dirname(dirname(__FILE__)) . '/config/config.php';
require_once DOCUMENT_ROOT . DIR_SHARED_DAO . "dao_user.php";
require_once DOCUMENT_ROOT . DIR_SHARED_API . "api_user.php";
require_once DOCUMENT_ROOT . DIR_SHARED_LIBRARIES . 'lib_redirect.php';

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 * Description of api_security
 *
 * @author Thien
 */
class api_security {

    public static function login($email, $password) {
        $result = array();
        $result['user_login'] = 'failed';
        $user_access = new dao_user();
        $user = $user_access->get_by_login_info($email, $password);
        if (!empty($user)) {
            $result = $user;
            $result['user_login'] = 'success';
        }
        return $result;
    }

    public static function can_login($email, $password) {
        $user_access = new dao_user();
        $user = $user_access->get_by_login_info($email, $password);
        if (!empty($user)) {
            return TRUE;
        } else {
            return FALSE;
        }
    }

    public static function logout() {
        session_start();
        $_SESSION['user_login'] = '';
        lib_redirect::Redirect('/index.php');
    }

    public static function validate_user_info($email, $password,
            $password_confirm, $first_name, $last_name, $address, $phone) {
        $error_show = "";
        if (empty($first_name)) {
            $error_show .= "Vui lòng nhập Họ.";
        } else if (empty($last_name)) {
            $error_show .= "Vui lòng nhập Tên.";
        } else if (empty($address)) {
            $error_show .= "Vui lòng nhập Địa Chỉ.";
        } else if (empty($phone)) {
            $error_show .= "Vui lòng nhập Số Điện Thoại.";
        } else if (!is_numeric($phone)) {
            $error_show .= "Số điện thoại chỉ được nhập số.";
        } else if (empty($email)) {
            $error_show .= "Vui lòng nhập Email.";
        } else if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
            $error_show .= "Email không hợp lệ.";
        } else if (api_user::email_exists($email)) {
            $error_show .= "Email đã tồn tại. Vui lòng chọn email khác.";
        } else if (empty($password)) {
            $error_show .= "Vui lòng nhập Mật Mã.";
        } else if (empty($password_confirm)) {
            $error_show .= "Vui lòng nhập Mật Mã Xác Nhận.";
        } else if ($password !== $password_confirm) {
            $error_show .= "Mật khẩu xác nhận không khớp.";
        }
        return $error_show;
    }

    public static function validate_change_password($email, $password_old, $password,
            $password_confirm) {
        $error_show = "";
        if (empty($password_old)) {
            $error_show .= "Vui lòng nhập Mật Mã Cũ.";
        } else if (empty($password)) {
            $error_show .= "Vui lòng nhập Mật Mã Mới.";
        } else if (empty($password_confirm)) {
            $error_show .= "Vui lòng nhập Mật Mã Xác Nhận Mới.";
        } else if (!self::can_login($email, $password_old)) {
            $error_show .= "Sai mật khẩu cũ.";
        } else if ($password !== $password_confirm) {
            $error_show .= "Mật khẩu xác nhận không khớp.";
        }
        return $error_show;
    }

    public static function register($email, $password,
            $first_name, $last_name, $address, $phone) {
        $user_access = new dao_user();
        $user_access->save(0,$email,$password,2,
                $first_name,$last_name,$address,$phone);
        return TRUE;
    }

    public static function get_all_users() {
        $user_access = new dao_user();
        return $user_access->get_all();
    }

    public static function change_password($email, $password_new) {
        $user_access = new dao_user();
        return $user_access->update_password($email, $password_new);
    }

}
